#ifndef _DIRWALKER_H_
#define _DIRWALKER_H_

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/types.h>
#include <dirent.h>

#include <string>

#include "FileSystem.h"

#define INFOS stderr	/* stream for outputting diagnostic messages */


using namespace std;

class DirWalker {
    
    private:
    	FileSystem *fs;
	string base_path;
		void desc_error(FILE *, const char *);
		/* obsluga konkretnego pliku */
		void do_file(string &);
		/* obsluga konkretnego katalogu */
		void do_dir(string &);
		vector<string>* split(const string&);
		int walk_dir_(string &);

    public:
    	DirWalker(FileSystem *fs);
		int walk_dir(string &);
		
	
};

#endif
